import {request} from '../../request/index.js';
//导入es7的async进行请求语法  进行使用
import regeneratorRuntime from '../../lib/runtime/runtime';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    leftlist:[],
    rightlist:[],
    // 被点击的菜单索引
    currindex:0,
    // 有菜单置顶的距离
    scrolltop:0
  },
  cates:[],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /*
      0。web中的本地存储  和小程序的本地存储区别
        （1）web
              存值：loacalStorage.setItem('key','value')  loacalStorage.getItem('key')
              获取值：wx.setStorageSync('key', data) wx.getStorageSync()
        （2）存入的时候，类型有没有转换
              web：都被转换为字符串
              小程序:存什么，还是什么
      1.先判断是否右旧数据
      2.没  发送请求  ——————》(要记得存入数据)
      3.有  同时没有过期就还用旧数据
    */
   
   // 1获取本地存储
   const cates = wx.getStorageSync('cate')
   // 判断
   if(!cates){//不存在发送请求数据
    
    this.datil()
  }else{
    // 判断是否过期   Date.now()时间窗   1000*10 秒为单位
    if(Date.now()-cates.time>1000*10){
        this.datil()

      }else{//可以使用旧数据
        this.cates = cates.data;
        let leftlist = this.cates.map(v=>v.cat_name)
        let rightlist = this.cates[0].children
        this.setData({
          leftlist,
          rightlist
        })
      }

    }
  },
async datil(){
    // 这是原生的请求数据
    // request({url:'/categories'})
    // .then(result=>{
    //   this.cates = result.data.message
    //   // 把接口的数据存入到本地存储中
    //   wx.setStorageSync('cate', {time:Date.now(),data:this.cates})

    //   console.log(result)
    //   // 构造左侧的大数据
    //   let leftlist = this.cates.map(v=>v.cat_name)
      
    //   let rightlist = this.cates[0].children
    //   // console.log(rightlist)

    //   // 构造右侧的大数据
    //   this.setData({
    //     leftlist,
    //     rightlist
    //   })
    // })
    const result = await request({url:'/categories'})
      this.cates = result
      // 把接口的数据存入到本地存储中
      wx.setStorageSync('cate', {time:Date.now(),data:this.cates})

      console.log(result)
      // 构造左侧的大数据
      let leftlist = this.cates.map(v=>v.cat_name)
      
      let rightlist = this.cates[0].children
      // console.log(rightlist)

      // 构造右侧的大数据
      this.setData({
        leftlist,
        rightlist
      })

  },

  // 切换tao事件
  handle(e){
    // 1获取被点击标题的索引
    // 2给data中index赋值
    // console.log(e)
    const {index} = e.currentTarget.dataset;

    let rightlist = this.cates[index].children
     
    // console.log(e.currentTarget.dataset)
    this.setData({
      currindex:index,
      rightlist,
      // 重新设置右侧内容顶部的距离
      scrolltop:0
    })
  },
 
})